package com.pe.pgn.clubpgn.dao;

import java.util.List;

import com.pe.pgn.clubpgn.domain.ClpbAlmacen;
import com.pe.pgn.clubpgn.domain.ClpbDocumentoMovArticulo;
import com.pe.pgn.clubpgn.domain.ClpdArticulo;
import com.pe.pgn.clubpgn.domain.ClpdDocumentoMovArticulo;
import com.pe.pgn.clubpgn.domain.ClpmCatalogo;
import com.pe.pgn.clubpgn.domain.ClpmStockAlmacenCatalogo;
import com.pe.pgn.clubpgn.domain.ClprPremioCatalogo;
import com.pe.pgn.clubpgn.domain.beans.BNAsignacionArticuloCatalogoDetalle;

public interface DocumentoMovArticuloDao extends
		GenericDao<ClpbDocumentoMovArticulo, Long> {

	public void guardarDocumentoMovimiento(
			ClpbDocumentoMovArticulo documentoMovArticulo);
	
	
	public void guardarDocumentoDevolucion(
			ClpbDocumentoMovArticulo documentoMovArticulo);

	
	public int guardarAsignarArticulo(ClpdDocumentoMovArticulo documento,ClpdArticulo articulo, ClprPremioCatalogo premio);
	

	public void eliminarDocumentoMovimiento(Long id);

	public List<ClpbDocumentoMovArticulo> busquedaDocumentoMovimientoPorFiltros(
			String deDocumento, Long coAlmacenOrigen, Long coAlmacenDestino);
	
	public List<ClpbDocumentoMovArticulo> busquedaDocumentoDevolucion(
			Long coAlmacen,String deProveedor, String fechaInicio, String fechaFin );

	public List<ClpbDocumentoMovArticulo> listaDocumentoDevolucion();
	
	public List<ClpbDocumentoMovArticulo> obtenerDocumentoMovimientos();

	public ClpbDocumentoMovArticulo obtenerDocumentoMovimiento(Long id);
	
	
	public ClpdArticulo obtenerArticulo(BNAsignacionArticuloCatalogoDetalle detalle);
	
	public ClpdArticulo obtenerArticulo(String coCodigoArticulo);
	
	public ClprPremioCatalogo obtenerPremio(String coCodigoPremio);
	
	public ClpbAlmacen obtenerAlmacen(Long idAlmacen);
	
	public ClpmCatalogo obtenerCatalogo(Long idCatalogo);
	
	public ClpmStockAlmacenCatalogo obtenerStockAlmCata(Long idArticulo,Long idAlmacen,Long idCatalogo);
	
	public ClpmStockAlmacenCatalogo obtenerStockAlmCata(Long idArticulo,Long idAlmacen);
	
}
